3.6.11.1 dmread-倍精度行列レジスタ読み出し
倍精度データの行列レジスタからの読み出しを行う。
code:文法
dmread $l(x|y)<addr> <dst_0> <dst_1>..
$l(x|y)は読み出し元の行列レジスタオペランドである。
(x|y)はどちらの行列レジスタから読み出すかの指定であり、以下効果においてsideとして参照する。
<addr>は読み出しを開始する列番号である。
サイクルごとに連続する列を重複なくアクセスするようにインクリメントされる。
倍精度行列データは 4 行 4列であるので、 1 命令で行列データ全体を行列レジスタから読み出すことができる。
<dst_0> [<dst_1>..]は書き込み先PEオペランドである。
複数のPEメモリに同時に書き込むことができるが、以下効果では簡単のため単一の書き込み先としてdstを指定した例を示している。
読み出した内容は通常の倍精度であり、書き込みのアクセス語長は長語である。
code:効果
for cycle= 0:4
forall chip,l2b,l1b,mab
LongWord src_data4
for i= 0:4
src_datai =MEMchipl2bl1bmab.refer_matreg(side,LongWord)i(addr + cycle)%4
forall pe
MEMchipl2bl1bmabpe.refer_pemem(dst,cycle) =src_datape